/**
 * 日期格式化
 */
export function dateFormat(date, format = 'MM-dd hh:mm') {
    // let format = 'MM-dd hh:mm'
    if (date !== 'Invalid Date') {
        var o = {
            'y+': date.getFullYear(), // month
            'M+': date.getMonth() + 1, // month
            'd+': date.getDate(), // day
            'h+': date.getHours(), // hour
            'm+': date.getMinutes(), // minute
            's+': date.getSeconds(), // second
            'q+': Math.floor((date.getMonth() + 3) / 3), // quarter
            'S': date.getMilliseconds() // millisecond
        }
        if (/(y+)/.test(format)) {
            format = format.replace(RegExp.$1,
                (date.getFullYear() + '').substr(4 - RegExp.$1.length))
        }
        for (var k in o) {
            if (new RegExp('(' + k + ')').test(format)) {
                format = format.replace(RegExp.$1,
                    RegExp.$1.length === 1 ? o[k]
                        : ('00' + o[k]).substr(('' + o[k]).length))
            }
        }
        return format
    }
    return ''
}

export function dateFormatDay(val,format = 'yyyy/mm/dd') {

    var date = new Date(/\d{4}-\d{1,2}-\d{1,2}/g.exec(val))
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate() < 10 ? ('0' +  (date.getDate())) :  (date.getDate())
    format = year + '/' + month   +'/' + day
    return format
}

export function dateFormatPlusOneYear(val,format = 'yyyy/mm/dd') {

        var date = new Date(/\d{4}-\d{1,2}-\d{1,2}/g.exec(val))
        var time = new Date(date.setDate(date.getDate() - 1));
        var y = time.getFullYear() + 5
        var m =  time.getMonth() + 1 
        var d = time.getDate() < 10 ? ('0' +  (time.getDate())) :  (time.getDate())
        format = y + '/' + m +'/' +  d
        return format
}

// export function getBeforeDate(n) {
//     var s = '';
//     // console.log(n);//
//     var d = new Date();
//     var year = d.getFullYear();
//     var mon = d.getMonth() + 1;
//     var day = d.getDate();
//     if(day <= n) {
//         if(mon > 1) {
//             mon = mon - 1;
//         } else {
//             year = year - 1;
//             mon = 12;
//         }
//     }
//     d.setDate(d.getDate() + n); //很重要，+n取得是前一天的时间
//     year = d.getFullYear();
//     mon = d.getMonth() + 1;
//     day = d.getDate();
//     s = (year) + '-' + (mon < 10 ? ('0' + mon) : mon) + "-" + (day < 10 ? ('0' + day) : day);
//     return s;
// }

// 当前日期年月日
export function formatNow(val) {
    let date = new Date(new Date().getTime())
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    val = year + '-' + (month < 10 ? ('0' + month) : month)   +'-' + day
    return val
}

// 当前最近七天开始时间
// export function formatWeek(val) {
//     let date = new Date((new Date().getTime() - 6 * 3600 * 24 * 1000))
//     const year = date.getFullYear()
//     const month = date.getMonth() + 1
//     const day = date.getDate()
//     val = year + '-' + month   +'-' + day
//     return val
// }

// 当前最近15天开始时间
// export function formatHalfMonth(val) {
//     let date = new Date((new Date().getTime() - 14 * 3600 * 24 * 1000))
//     const year = date.getFullYear()
//     const month = date.getMonth() + 1
//     const day = date.getDate()
//     val = year + '-' + month   +'-' + day
//     return val
// }
// 当前最近30天开始时间
// export function formatMonth(val) {
//     let date = new Date((new Date().getTime() - 29 * 3600 * 24 * 1000))
//     const year = date.getFullYear()
//     const month = date.getMonth() + 1
//     const day = date.getDate()
//     val = year + '-' + (month < 10 ? ('0' + month) : month)    +'-' + day
//     return val
// }

export function dateFormatNoSecond(date) {
    let format = 'yyyy-MM-dd hh:mm'
    if (date !== 'Invalid Date') {
      var o = {
        'M+': date.getMonth() + 1, // month
        'd+': date.getDate(), // day
        'h+': date.getHours(), // hour
        'm+': date.getMinutes(), // minute
        's+': date.getSeconds(), // second
        'q+': Math.floor((date.getMonth() + 3) / 3), // quarter
        'S': date.getMilliseconds() // millisecond
      }
      if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1,
          (date.getFullYear() + '').substr(4 - RegExp.$1.length))
      }
      for (var k in o) {
        if (new RegExp('(' + k + ')').test(format)) {
          format = format.replace(RegExp.$1,
            RegExp.$1.length === 1 ? o[k]
              : ('00' + o[k]).substr(('' + o[k]).length))
        }
      }
      return format
    }
    return ''
  }

  export function dateFormatAll(date) {
    let format = 'yyyy-MM-dd   hh:mm:ss'
    if (date !== 'Invalid Date') {
      var o = {
        'M+': date.getMonth() + 1, // month
        'd+': date.getDate(), // day
        'h+': date.getHours(), // hour
        'm+': date.getMinutes(), // minute
        's+': date.getSeconds(), // second
        'q+': Math.floor((date.getMonth() + 3) / 3), // quarter
        'S': date.getMilliseconds() // millisecond
      }
      if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1,
          (date.getFullYear() + '').substr(4 - RegExp.$1.length))
      }
      for (var k in o) {
        if (new RegExp('(' + k + ')').test(format)) {
          format = format.replace(RegExp.$1,
            RegExp.$1.length === 1 ? o[k]
              : ('00' + o[k]).substr(('' + o[k]).length))
        }
      }
      return format
    }
    return ''
  }

